const set = new Set([3, 2]);
// 添加元素
set.add(1);
console.log(set);
// 判断有没有
console.log(set.has(1));
// 大小
console.log(set.size);
// 数据
console.log(set.values());
console.log(set.keys());
console.log(set.entries());
// 删除元素
console.log(set.delete(1));
console.log(set);
// 清除集合
set.clear();
console.log(set);



let setA = new Set([1, 2, 3]);
let setB = new Set([3, 4, 5]);
// 并集运算
function union(setA, setB) {
    const newSet = new Set();
    setA.forEach(value => {
        newSet.add(value)
    });
    setB.forEach(value => {
        newSet.add(value)
    });
    return newSet;
};

// 交集运算
function intersection(setA, setB) {
    const newSet = new Set();
    setA.forEach(value => {
        if (setB.has(value)) {
            newSet.add(value);
        }
    });
    return newSet
}

// 差集运算
function difference(setA, setB) {
    const newSet = new Set();
    setA.forEach(value => {
        if (!setB.has(value)) {
            newSet.add(value)
        }
    });
    return newSet
}

// 交集
console.log(new Set([...setA, ...setB]));
// 并集
console.log(new Set([...setA].filter(x => setB.has(x))));
// 交集
console.log(new Set([...setA].filter(x => !setB.has(x))));